#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include <unistd.h>
#include <time.h>
#include <sys/wait.h>

int main(int argc, char ** argv) {
	if (argc != 4) {
		printf("Niepoprawna liczba argumentów. Poprawne wywołanie: ./dopisz <nazwa_pliku> <okres> <ilosc_bajtów>/n");
		return -1;
	}
	int period = atoi(argv[2]);
	int bytes = atoi(argv[3]);
	if (period <= 0 || bytes <= 0) {
		printf("Okres i ilość bajtów musza być dodatnimi liczbami całkowitymi!\n");
		return -2;
	}
	srand(time(NULL));
	while (1) {
		FILE * plik = fopen(argv[1], "a");
		if (plik == NULL) {
			perror(argv[1]);
			return -3;
		}
		struct stat stats;
		lstat(argv[1], &stats);
		struct tm czas;
		localtime_r(&stats.st_mtime, &czas);
		fprintf(plik, "\n%d %d/%d/%d %d:%d:%d ", (int)getpid(), czas.tm_year + 1900, czas.tm_mon + 1, czas.tm_mday, czas.tm_hour, czas.tm_min, czas.tm_sec);
		int i;
		for (i = 0; i < bytes; i++) {
			fputc((char)((rand() % 26) + 97), plik);
		}
		fclose(plik);
		sleep(period);
	}
	return 0;
}
